#ifndef SCHEDULE_H
#define SCHEDULE_H
#include <linux/time.h>
#include <linux/hrtimer.h>
#include "trace.h"
#include "sched_types.h"
struct sched_vm;
struct sched_vcpu;
extern void stop_auto_schedule(void);
extern void vm_pause_by_systemcontroller(struct sched_vm*);
extern void wait_scheduler_stops(void);
extern void scheduler_destroy(void);
extern void vcpu_runstate_change(struct sched_vcpu*, int, s_time_t);
extern void vmsched_destroy_vcpu(struct sched_vcpu *v);
extern void vmsched_destroy_vm(struct sched_vm *);
extern int vmsched_init_vcpu(struct sched_vcpu *v, unsigned int processor);
extern int vmsched_init_vm(struct sched_vm *kvm);
extern void vcpu_sleep_nosync(struct sched_vcpu *v);
extern void vcpu_sleep_sync(struct sched_vcpu *v);
extern void vcpu_wake(struct sched_vcpu *v);
extern void vm_pause(struct sched_vm *kvm);
extern void vm_unpause(struct sched_vm *kvm);
extern void vmscheduler_init(void);
extern void scheduler_stop_tickers(void);
extern void vm_unpause_by_systemcontroller(struct sched_vm* kvm);
extern int scheduler_start(void);
#endif
